#pragma once

#include <string>
#include <vector>

struct RegKeyName;

class SimulinkBase
{
public:
    virtual bool init() = 0;
    virtual void startSim() = 0;
    virtual void pauseSim() = 0;
    virtual void continueSim() = 0;
    virtual void endSim() = 0;

protected:
    std::vector<std::string> getMatlabPaths();
    int findProcess(const std::string& procPath);

    bool mIsValid = false;

private:
    std::vector<std::string> getMatlabVersionPaths(RegKeyName& keyStr, std::vector<std::string>& paths);
};